When processing packets transmitted over a network it may be advantageous to maximize parallel processing by processing packets simultaneously at multiple processing units, also known as cores. To protect the integrity of shared data structures, it may be necessary to serialize the processing of packets, as well as other accesses, to or from the same transceivers. In a wireless access device having multiple transceivers and multiple processing units, for example, serial access to each transceiver may be necessary to ensure that separate processing units do not simultaneously access the shared data structures for that transceiver. Serializing packet processing for a conversational flow may also be necessary to maintain the sequential ordering of the packets that conversational flow. Maximum parallelism may be achieved by respectively processing multiple conversational flows at multiple processing units simultaneously in parallel. Conversational flow, as used herein, refers to the stream of ordered packets exchanged between two endpoints, possibly via one or more intermediary devices, in a wired or wireless packet-based network.
Many solutions exist to maximize parallel processing of packets transmitted over a wired network, e.g., an Ethernet network using the IEEE 802.3 standard (Institute of Electrical and Electronics Engineers). Hardware accelerators distribute packets to as many processing units as possible and schedules processing of the packets to ensure the serial processing of packets from the same conversational flows and schedule processing of the packets in a manner that maintains the packet order.
These hardware accelerators, however, may be designed to work closely with Ethernet adapters and may be designed to process Ethernet packets in particular. As a result, the hardware accelerators are seemingly incompatible with packets transmitted over a wireless network that uses a wireless protocol, e.g., the IEEE 802.11 standard. Further, due to the nature of wireless packet processing (e.g., various encoding and encryption schemes, continually changing standards, etc.) hardware solutions for accelerating the processing of wireless packets are lacking.
Thus, there is a need to accelerate the processing of wireless packets and maximize parallelism in a wireless interface having multiple processing units.